package org.platform.tool.helper;

import com.mc.mic.core.log.bus.BusLog;
import com.mc.mic.core.log.bus.BusLogPusher;
import com.mc.mic.core.log.bus.BusLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 日志工具
 *
 * @author FengJie
 * @date 2018/8/9
 */
@Component
@Slf4j
public class LogHelper {
    @Autowired
    private BusLogService busLogService;
    @Autowired
    private BusLogPusher busLogPusher;
    @Autowired
    private ResourceHelper resourceHelper;

    /**
     * 保存日志并且推送
     * 使用框架一套
     *
     * @param content  日志内容
     * @param taskId   如果是任务: 流水号_任务号_诊断ID ;  如果是诊断: 诊断ID
     * @param deviceId 设备id
     */
    public void normal(String content, String taskId, String deviceId) {
        log.info(content);
        BusLog busLog = busLogService.normal(content, BusLogService.LogType.FD, resourceHelper.getStationName(), taskId, deviceId);
        busLogPusher.log(busLog);
    }


    /**
     * 业务异常处理
     *
     * @param content  原因
     * @param taskId   诊断id
     * @param deviceId 设备id
     * @param e        异常信息
     */
    public void error(String content, String taskId, String deviceId, Exception e) {
        log.error(content, e);
        BusLog busLog = busLogService.error(content + "  原因: " + e.getMessage(), BusLogService.LogType.FD, resourceHelper.getStationName(), taskId, deviceId);
        busLogPusher.log(busLog);
        throw new RuntimeException(e);
    }


}
